#include <windows.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glext.h>

class CFOSGLFire
{
public:
	CFOSGLFire(void);
	~CFOSGLFire(void);

	// Public Functions

	void CFOSGLFire::InitFire();
	void CFOSGLFire::PrepareFire();
	void CFOSGLFire::ActivateFireParticles();
	void CFOSGLFire::ActivateSmokeParticles();
	void CFOSGLFire::RenderFire();

	GLuint CFOSGLFire::LoadBitmapTexture(char * FileName);

	// Public structures

	struct PARTICLE {

		float X,Y,Z;		// Current position
		float sX,sY,sZ;		// Current Speed/Movement
		float tX,tY,tZ;		// Target Speed/Movement
		float R,B,G;		// Particle Colour
		float Size;			// Size of the particle
		bool Active;		// Is particle Active
		int Age;			// Age of the particle
		int MaxAge;			// Maximum Age before particle dies

	};



	// Public Variables

	PARTICLE * FireParticles;
	PARTICLE * SmokeParticles;

	int FireParticleCount, SmokeParticleCount;
	int ActivateFirePerFrame, ActivateSmokePerFrame;
	GLuint tFire, tSmoke, tFloor;

};
